package com.nopay.cdxphone;

import android.content.Context;
import androidx.annotation.NonNull;
import androidx.multidex.MultiDex;
import androidx.multidex.MultiDexApplication;

import com.nopay.cdxphone.crash.ExceptionHandler;
import com.nopay.cdxphone.wx.WXSDKManager;
import com.tencent.bugly.crashreport.CrashReport;
import com.ycbjie.webviewlib.utils.X5WebUtils;

import org.litepal.LitePal;

import cn.bingoogolapple.swipebacklayout.BGASwipeBackHelper;

/**
 * @ProjectName: myVisualPhone
 * @Package: cn.cn.myvisualphone
 * @ClassName: App
 * @Description: java类作用描述
 * @Author: anqi
 * @CreateDate: 2021/5/20 6:19
 * @UpdateUser: 更新者
 * @UpdateDate: 2021/5/20 6:19
 * @UpdateRemark: 更新说明
 * @Version: 1.0
 */
public class App extends MultiDexApplication {

    private static App instance;

    @Override
    protected void attachBaseContext(@NonNull Context base) {
        super.attachBaseContext(base);
        MultiDex.install(this);
    }

    @Override
    public void onCreate() {
        super.onCreate();
        instance = this;//存储引用
        // 必须在 Application 的 onCreate 方法中执行 BGASwipeBackHelper.init 来初始化滑动返回
        //第一个参数：应用程序上下文
        // 第二个参数：如果发现滑动返回后立即触摸界面时应用崩溃，请把该界面里比较特殊的 View 的 class 添加到该集合中，目前在库中已经添加了 WebView 和 SurfaceView

        BGASwipeBackHelper.init(this, null);
        LitePal.initialize(this);
        Thread.setDefaultUncaughtExceptionHandler(new ExceptionHandler(instance));
        X5WebUtils.init(this);
        // 在 Application#onCreate 里调用预取。注意：如果不需要调用`getClientId()`及`getOAID()`，请不要调用这个方法
//        DeviceID.register(this);
        // 在需要用到设备标识的地方获取
        // 客户端标识原始值：DeviceID.getClientId()
        // 客户端标识统一格式为MD5：DeviceID.getClientIdMD5()
        // 客户端标识统一格式为SHA1：DeviceID.getClientIdSHA1()
        // 开放匿名设备标识原始值：DeviceID.getOAID()

        WXSDKManager.init(getApplicationContext());

        CrashReport.initCrashReport(getApplicationContext(), "2d151a352d", false);
    }

    public static App getInstance() {
        return instance;
    }
}
